package dominioTanque;

import interfaces.Notificable;
import interfaces.Notificador;

public class Bomba implements Notificador {

	Notificable observador;
	private boolean encendida = false;
	private boolean presion = false;
	public static String bombaEncendida = "Bomba Encendida";
	public static String bombaApagada = "Bomba Apagada";
	public static String presionBombaOk = "Presion de agua ok";
	public static String sinPresion = "Sin presion";
	
	public Bomba (){}
	
	public void encender(){
		if (encendida == false){
			this.encendida = true;
			notificar(bombaEncendida);
		}
	}
	
	public void apagar(){
		if (encendida == true){
			this.encendida = false;			
			notificar(bombaApagada);
		}
	}
	
	protected void setPresion(boolean opcion){
		if (presion != opcion){
			this.presion = opcion;
			if (presion) notificar(presionBombaOk);
			else {				
				this.encendida = false;				
				notificar(sinPresion);				
			}
			
		}
	}
	
	public void registrarObservador(Notificable obs) {
		this.observador = obs;
	}

	public void notificar(String evento) {
		if (this.observador != null) this.observador.notificarMensaje(evento);
	}
	
	public String getEstado(){
		return("Bomba encendida: "+this.encendida); 
	}
	
	public String toString(){
		return "Bomba";
	}
}
